var fs = require('fs');
// 读取文件 这是异步的写法
function readFile(filename,option) {
    fs.readFile(filename, option,function(err, data) {
        // 读取文件失败/错误
        if (err) {
            throw err;
        }
        // 读取文件成功
        console.log(data)
    });
}
// readFile('./text.txt','utf-8')

// 同步的写法是没有回调函数的
function readFileSync (filename,options) {
    let ii = fs.readFileSync(filename,options)
    console.log(ii)
}
// readFileSync('./text.txt','utf-8')

// 写入内容到文件
// 写入文件内容（如果文件不存在会创建一个文件）
// 写入时会先清空文件
function writeFile(filename,data,options) {
    // 传递了追加参数 { 'flag': 'a' } 不会清空文件内容
    // flag传值，r代表读取文件，w代表写文件，a代表追加。
    fs.writeFile(filename,data,{ 'flag': 'a' },function(err) {
        if (err) {
            throw err;
        }
        console.log('Saved.');
        // 写入成功后读取测试
        readFile(filename,options)
    })
}
// writeFile('./test.txt','test test','utf-8')

// 创建目录
function mkdir(path) {
    fs.mkdir(path,function(err) {
        if (err) {
            throw err;
        }
        console.log('make dir success.');
    })
}
// mkdir('./newdir')

// 删除目录可以用fs.rmdir(path,callback);但是只能删除空目录
function rmdir(path) {
    fs.rmdir(path,function(err) {
        if (err) {
            throw err;
        }
        console.log('rmdir dir success.');
    })
}
// rmdir('./newdir')

// 使用fs.readdir(path,callback)读取文件目录。
 function readdir(path) {
    fs.readdir(path,function(err,files) {
        if (err) {
            throw err;
        }
        // files是一个数组
        // 每个元素是此目录下的文件或文件夹的名称
        console.log(files);
    })
 }
 readdir('./newdir')